#ifndef INIT_ENTERAGEN_CU
#define INIT_ENTERAGEN_CU

#include "../representaciones/enteraGen.cuh"

__global__ void inicializarPoblacionEnteraGenManual(int* poblacion, float* fitnessActualDevice, struct Random randomGPU, int cantCromosomasPoblacion, float * fitnessOrdenadoDevice){
	int posCromosoma = blockIdx.y * cantGenesEnCromosomaDevice * 2;
	int posCromosoma2 = posCromosoma + cantGenesEnCromosomaDevice;
	int indiceRandom = threadIdx.y + blockIdx.y * blockDim.y;
	for(int i = threadIdx.y; i < cantGenesEnCromosomaDevice; i = i + cantHilosBloqueDevice){
		//Obtengo posiciones a escribir.
		int posicionGen = posCromosoma + i;
		int posicionGen2 = posCromosoma2 + i;
		//Genero valor aleatorio.
		poblacion[posicionGen] = obtenerNumeroEnRangoEntera(getRandomInt(randomGPU, indiceRandom));
		poblacion[posicionGen2] = obtenerNumeroEnRangoEntera(getRandomInt(randomGPU, indiceRandom));
	}
}

#endif
